package com.hoshiicloud.stock.param;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 库存修改参数实体
 *
 * @author : yangcheng
 * @date : 2019/5/17 19:36
 * @mail : maiboyc@163.com
 **/
@ApiModel
@Data
public class WarehouseListUpdateParam {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空")
    @ApiModelProperty(name = "id", value = "ID", dataType = "java.lang.Long", example = "3171776001692664001")
    private Long id;

    // 仓库ID
    @NotNull(message = "仓库ID不能为空")
    @ApiModelProperty(name = "warehouseid", value = "仓库ID", required = true, dataType = "java.lang.Long", example = "3171776001692664002")
    private Long warehouseid;

    // 公司ID
    @NotNull(message = "公司ID不能为空")
    @ApiModelProperty(name = "companyid", value = "公司ID", required = true, dataType = "java.lang.Long", example = "3171776001692663893")
    private Long companyid;

    // 平台ID
    @ApiModelProperty(name = "platformid", value = "平台ID", required = true, dataType = "java.lang.Long", example = "3171776001692663894")
    private Long platformid;

    // 店铺ID
    @ApiModelProperty(name = "storeid", value = "店铺ID", required = true, dataType = "java.lang.Long", example = "3171776001692663895")
    private Long storeid;

    // 供应商ID
    @ApiModelProperty(name = "vendor", value = "供应商ID", required = true, dataType = "java.lang.Long", example = "3171776001692663896")
    private Long vendor;

    // 商品名称
    @NotNull(message = "商品名称不能为空")
    @ApiModelProperty(name = "itemnoname", value = "商品名称", required = true, dataType = "java.lang.String", example = "衬衫")
    private String itemnoname;

    // SKUID
    @NotNull(message = "SKUID不能为空")
    @ApiModelProperty(name = "skuid", value = "SKUID", required = true, dataType = "java.lang.Long", example = "3171776001692663897")
    private Long skuid;

    // SKUNO
    @NotNull(message = "SKUNO不能为空")
    @ApiModelProperty(name = "skuno", value = "SKUNO", required = true, dataType = "java.lang.String", example = "SKU0001")
    private String skuno;

    // 商品名称
    @NotNull(message = "商品名称不能为空")
    @ApiModelProperty(name = "skuname", value = "商品名称", required = true, dataType = "java.lang.String", example = "女士衬衫")
    private String skuname;

    // 规格
    @NotNull(message = "规格不能为空")
    @ApiModelProperty(name = "spec", value = "规格", required = true, dataType = "java.lang.String", example = "件")
    private String spec;

    // 单位
    @NotNull(message = "单位不能为空")
    @ApiModelProperty(name = "unit", value = "单位", required = true, dataType = "java.lang.String", example = "件")
    private String unit;

    // 期初库存
    @NotNull(message = "期初库存不能为空")
    @ApiModelProperty(name = "initBalance", value = "期初库存", required = true, dataType = "java.math.BigDecimal", example = "500.00")
    private BigDecimal initBalance;

    // 期初金额
    @NotNull(message = "期初金额不能为空")
    @ApiModelProperty(name = "initAmount", value = "期初金额", required = true, dataType = "java.math.BigDecimal", example = "1000.00")
    private BigDecimal initAmount;

    // 入库数量
    @ApiModelProperty(name = "inQtys", value = "入库数量", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal inQtys;

    // 入库金额
    @ApiModelProperty(name = "inAmount", value = "入库金额", required = true, dataType = "java.math.BigDecimal", example = "200.00")
    private BigDecimal inAmount;

    // 出库数量
    @ApiModelProperty(name = "outQtys", value = "出库数量", required = true, dataType = "java.math.BigDecimal", example = "30.00")
    private BigDecimal outQtys;

    // 出库金额
    @ApiModelProperty(name = "outAmount", value = "出库金额", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal outAmount;

    // 当前库存
    @NotNull(message = "当前库存不能为空")
    @ApiModelProperty(name = "balance", value = "当前库存", required = true, dataType = "java.math.BigDecimal", example = "570.00")
    private BigDecimal balance;

    // 当前金额
    @NotNull(message = "当前金额不能为空")
    @ApiModelProperty(name = "amount", value = "当前金额", required = true, dataType = "java.math.BigDecimal", example = "1100.00")
    private BigDecimal amount;

    // 采购入库
    @ApiModelProperty(name = "poInQtys", value = "采购入库", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal poInQtys;

    // 采购入库金额
    @ApiModelProperty(name = "poInAmount", value = "采购入库金额", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal poInAmount;

    // 销售退货
    @ApiModelProperty(name = "soInQtys", value = "销售退货", required = true, dataType = "java.math.BigDecimal", example = "20.00")
    private BigDecimal soInQtys;

    // 销售退货金额
    @ApiModelProperty(name = "soInAmount", value = "销售退货金额", required = true, dataType = "java.math.BigDecimal", example = "200.00")
    private BigDecimal soInAmount;

    // 其他入库
    @ApiModelProperty(name = "otInQtys", value = "其他入库", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal otInQtys;

    // 其他入库金额
    @ApiModelProperty(name = "otInAmount", value = "其他入库金额", required = true, dataType = "java.math.BigDecimal", example = "300.00")
    private BigDecimal otInAmount;

    // 转移入库
    @ApiModelProperty(name = "tfInQtys", value = "转移入库", required = true, dataType = "java.math.BigDecimal", example = "50.00")
    private BigDecimal tfInQtys;

    // 转移入库金额
    @ApiModelProperty(name = "fInAmount", value = "转移入库金额", required = true, dataType = "java.math.BigDecimal", example = "200.00")
    private BigDecimal fInAmount;

    // 采购出库
    @ApiModelProperty(name = "poOutQtys", value = "采购出库", required = true, dataType = "java.math.BigDecimal", example = "220.00")
    private BigDecimal poOutQtys;

    // 采购出库金额
    @ApiModelProperty(name = "poOutAmount", value = "采购出库金额", required = true, dataType = "java.math.BigDecimal", example = "300.00")
    private BigDecimal poOutAmount;

    // 销售出货
    @ApiModelProperty(name = "soOutQtys", value = "销售出货", required = true, dataType = "java.math.BigDecimal", example = "80.00")
    private BigDecimal soOutQtys;

    // 销售出货金额
    @ApiModelProperty(name = "soOutAmount", value = "销售出货金额", required = true, dataType = "java.math.BigDecimal", example = "300.00")
    private BigDecimal soOutAmount;

    // 其他出库
    @ApiModelProperty(name = "otOutQtys", value = "其他出库", required = true, dataType = "java.math.BigDecimal", example = "70.00")
    private BigDecimal otOutQtys;

    // 其他出库金额
    @ApiModelProperty(name = "otOutAmount", value = "其他出库金额", required = true, dataType = "java.math.BigDecimal", example = "300.00")
    private BigDecimal otOutAmount;

    // 转移出库
    @ApiModelProperty(name = "tfOutQtys", value = "转移出库", required = true, dataType = "java.math.BigDecimal", example = "60.00")
    private BigDecimal tfOutQtys;

    // 转移出库金额
    @ApiModelProperty(name = "tfOutAmount", value = "转移出库金额", required = true, dataType = "java.math.BigDecimal", example = "100.00")
    private BigDecimal tfOutAmount;

}  